레이아웃 만들기

✒️ 2025-05-16 12:39 내용 수정


web grid layout

자주 사용하는 규격

| | 간격 30px 고정크기 | 간격 없는 가변크기 | 간격 3%인 가변크기 |
| ---- |: ----: |: ----: |: ----: |
| inner | 1170px | 100% | 100% |
| 2개 | 570px | 50% | 48.5% |
| 3개 | 370px | 33.3333% | 31.333% |
| 4개 | 270px | 25% | 22.75% |


기본 레이아웃 만들기

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="layout-2.css"> <!-- 파일 경로 작성 -->
</head>
<body>
    <header class="header">
        <div class="inner">
            <h1 class="logo"><a href="#">LOGO</a></h1>
            <nav>
                <a href="#">Home</a>
                <a href="#">About</a>
                <a href="#">Portpolio</a>
                <a href="#">Contact</a>
            </nav>
        </div>
    </header>

    <main>
        <section class="visual"></section>
        <section class="board content">
            <div class="inner">
                <h2 class="title">게시판</h2>
            </div>
        </section>
        <section class="bestItem content">
            <div class="inner">
                <h2 class="title">Best 아이템</h2>
            </div>
        </section>
        <section class="newItem content">
            <div class="inner">
                <h2 class="title">New 아이템</h2>
            </div>
        </section>
    </main>
    <footer class="footer"></footer>
</body>
</html>
*{margin:0;padding:0; box-sizing: border-box;}
ul, ol, li{list-style: none;}
a{text-decoration: none;}

.header{width: 100%; height: 100px; background-color: #ddd;}
.inner{width:1170px; margin:0 auto;}

.content{width:100%; padding: 150px 0;}
.content .inner{height: 100px; background-color: lightblue;}

.footer{width: 100%; height: 100px; background-color: #666;}

layout.png


레이아웃 만들기 순서

  1. 사이트에 작성할 내용을 기준으로 구역을 나눈다.

layout 실습2.png

layout 실습1.png

  1. 나눈 내용으로 태그를 작성한다.
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="../css/layout-4.css">
</head>
<body>
    <header class="header">
        <div class="inner">
            <h1 class="logo"><a href="#">검찰청</a></h1>
            <div class="menuWrap">
                <div class="util">
                    <span class="ls">nation</span>
                    <span class="ls">역사체험관</span>
                    <span class="ls">글자크기조정</span>
                    <span class="ls">언어설정</span>
                </div>
                <nav class="gnbWrap">
                    <ul id="gnb">
                        <li><a href="#">참여민원</a></li>
                        <li><a href="#">검찰활동</a></li>
                        <li><a href="#">정보자료</a></li>
                        <li><a href="#">알림소식</a></li>
                        <li><a href="#">정보공개</a></li>
                    </ul>
                </nav>
            </div>
        </div>
    </header>

    <section class="visual"></section>

    <section class="con1 content">
        <div class="inner">
            <h2 class="title">
            <div class="wrap">               
                <div class="box">1</div>
                <div class="box">2</div>
                <div class="box">3</div>
                <div class="box">4</div>
            </div>
            </h2>
        </div>
    </section>
    <section class="con2 content">
        <div class="inner">
            <h2 class="title">
            <div class="wrap">               
                <div class="box">1</div>
                <div class="box">2</div>
                <div class="box">3</div>
                <div class="box">4</div>
            </div>
            </h2>
        </div>
    </section>
    <section class="con3 content">
        <div class="inner">
            <h2 class="title">
            <div class="wrap">               
                <div class="box">1</div>
                <div class="box">2</div>
                <div class="box">3</div>
                <div class="box">4</div>
            </div>
            </h2>
        </div>
    </section>
    <section class="con4 content">
        <div class="inner">
            <h2 class="title">
            <div class="wrap">               
                <div class="box">1</div>
                <div class="box">2</div>
                <div class="box">3</div>
                <div class="box">4</div>
            </div>
            </h2>
        </div>
    </section>
    <footer class="footer">
        <div class="inner">
            <h1 class="fLogo"><a href="#">Logo</a></h1>
            <div class="fMenu box">menu</div>
            <div class="fSns box">sns</div>
        </div>
    </footer>
</body>
</html>

  1. 각 구역에 적용할 CSS를 작성한다.
*{margin:0; padding: 0; box-sizing: border-box;}
ul, ol, li{list-style: none;}
a{text-decoration: none;}

/* 헤더, 섹션, 푸터 */
.content{width: 100%; padding: 120px 0;}
.inner{width: 1170px; margin: 0 auto;}
.content .title{ margin: 0 0 40px;font: bold 24px 'inherit'; text-align: center; color:#444;}
.content .wrap{display:flex; flex-direction: row; justify-content: space-between;}
.content .box{width: 25%; height: 300px; border: 1px solid black; background-color: #ddd;}

.header{width: 100%; height: 100px; background-color: #ddd;}
.header .inner{display: flex;}
.header .logo{width: 100px; background-color: pink;}
.header .menuWrap{width: calc(100% - 100px); background-color: yellow;}
.header .menuWrap .util{display: flex; justify-content: flex-end;}
.header .menuWrap .util .ls{font-size: 14px; color: #777;}

#gnb{display: flex; justify-content: flex-end;}
#gnb > li{border: 2px solid blue;}
#gnb > li > a{font: bold 18px 'inherit'; color: #444;}

.visual{width: 100%; height: 500px; background-color: salmon;}

.footer{width: 100%; padding: 10px 0; background-color: #ddd;}
.footer .inner{display: flex;}
.footer div{ border: 1px solid blue;}
.footer .fLogo{width: 15%;}
.footer .fMenu{width: 60%;}
.footer .fSns{size: 25%;}

layout 실습3.png
layout 실습4.png